#python 输入三条边的长度,判断这几条边是否能组成三角形

#python 输入三条边的长度,判断这几条边是否能组成三角形

问题描述:输入三角形的三条边,判断该三角形的形状,周长,面积和每条边的高。

第一步:导入所需要的库math

import math

第二步:判断此三条线段是否能组成三角形,

判断条件:#三角形三边a、b、c,必须满足:三条边长均大于零,并且任意两边之和大于第三边

输入三个数:

a=int(input("请输入边长a:"))
b=int(input("请输入边长b:"))
c=int(input("请输入边长c:"))

开始判断:

if (a>0 and b>0 and c>0 and a+b>c and a+c>b and b+c>a):
    pass
else:
    print("三条边:{0}、{1}和{2},不能构成三角形".format(a, b, c))

能组成三角形,则进行下一步,不能则直接输出else下列语句

第三步:用python语句代替数学公式

    h= (a + b + c) / 2                  #周长的一半
    area = math.sqrt(h * (h - a) * (h - b) * (h - c))  #面积
    perimeter = a + b + c                     #周长
    height_a = 2 * area / a      #边长a所对应的高
    height_b = 2 * area / b      # 边长b所对应的高
    height_c = 2 * area / c      # 边长c所对应的高
    print("三角形的三条边为:{0}、{1}和{2}".format(a, b, c))
    print("三角形的面积为:{0:.2f}".format(area))
    print("三角形的周长为:{0:.2f}".format(perimeter))
    print("边长A对应的高为:{0:.2f}".format(height_a))
    print("边长B对应的高为:{0:.2f}".format(height_b))
    print("边长C对应的高为:{0:.2f}".format(height_c))
    if a**2 + b**2 == c**2 or b**2 + c**2 == a**2 or a**2 + c**2 == b**2:
        print("该三角形为直角三角形")
    elif a**2 + b**2 < c**2 or b**2 + c**2 < a**2 or a**2 + c**2 < b**2:
        print("该三角形为钝角三角形")
    elif a**2 + b**2 > c**2 or b**2 + c**2 > a**2 or a**2 + c**2 > b**2:
        print("该三角形为锐角三角形")

第四步:总结

难点在于条件判断和数学公式的转化

完整代码:

import math
#三角形三边a、b、c,必须满足:三条边长均大于零,并且任意两边之和大于第三边
a=int(input("请输入边长a:"))
b=int(input("请输入边长b:"))
c=int(input("请输入边长c:"))
if (a>0 and b>0 and c>0 and a+b>c and a+c>b and b+c>a):
    h = (a + b + c) / 2                  #周长的一半
    area = math.sqrt(h * (h - a) * (h - b) * (h - c))  #面积
    perimeter = a + b + c                     #周长
    height_a = 2 * area / a      #边长a所对应的高
    height_b = 2 * area / b      # 边长b所对应的高
    height_c = 2 * area / c      # 边长c所对应的高
    print("三角形的三条边为:{0}、{1}和{2}".format(a, b, c))
    print("三角形的面积为:{0:.2f}".format(area))
    print("三角形的周长为:{0:.2f}".format(perimeter))
    print("边长A对应的高为:{0:.2f}".format(height_a))
    print("边长B对应的高为:{0:.2f}".format(height_b))
    print("边长C对应的高为:{0:.2f}".format(height_c))
    if a**2 + b**2 == c**2 or b**2 + c**2 == a**2 or a**2 + c**2 == b**2:
        print("该三角形为直角三角形")
    elif a**2 + b**2 < c**2 or b**2 + c**2 < a**2 or a**2 + c**2 < b**2:
        print("该三角形为钝角三角形")
    elif a**2 + b**2 > c**2 or b**2 + c**2 > a**2 or a**2 + c**2 > b**2:
        print("该三角形为锐角三角形")
else:
    print("三条边:{0}、{1}和{2},不能构成三角形".format(a, b, c))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十五 0.o

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值